How to grep multiple strings and (&) condition

How can I run grep with multiple AND patterns or conditions? I need something as follows on a Linux or Unix systems such as macOS:

grep word1 & word2 & word3 filename

But, the syntax didn’t worked out for me.

grep -E “word1|word2|word3” filename