tee simply receives stdout from the pipe chain and reliably reproduces it.
So the output each time goes to the next piped command. The final "tee file3" is the thing that actually ends up dumping to console, because it's the only command whose output is not being piped.
If you want to maintain your tee behaviour, but also see the output as many times as it is copied, you could:
for i in `seq 1 3`; do
cat file1 | tee file$i