Just do
grep -vFxf file2 file1 > file3
This will return those lines that doesn't exist in file2 but in file1 and write the result to file3.
-v, reverse match, here means those lines if exist only in file2. Without -v it will return those lines which are exist in both files.
-F, this is telling grep to match the pattern as a fixed pattern string instead of regex (regular expressions)
-x, matches the whole line as pattern string
-f, reading the patterns from a file
Or per your question's title and the command you referred to that sort -u, seems you want those unique words (actually lines) either exist in the file1 or file2. then you just need.
uniq -u <(sort file1 file2) > file3