Put all the strings in one file as this:
$ cat strings
string1
string2
string3
And execute:
$ grep -rhIoFf strings
###Edit
If it is not exactly string1 what you need as output (the effect of -o) keep reading
Convert the list of strings in file strings (if they do not have spaces or new lines) to one string separated with | :
filter=$(printf "%s|" $(cat infilestrings))
Then, use the string as the filter for grep :
grep -rhIE "${filter%?}"