You need to use { list;} instead of (list):
if ! { [ -f file1 ] && [ -f file2 ] && [ -f file3 ]; }; then
: do something
fi
Both of them are Grouping Commands, but { list;} executes commands in current shell environment.
Note that, the ; in { list;} is needed to delimit the list from } reverse word, you can use other delimiter as well. The space (or other delimiter) after { is also required.