or does not behave that way. 'string1' or 'string2' or 'string3' in line is equivalent to ('string1') or ('string2') or ('string3' in line), which will always return true (actually, 'string1').
To get the behavior you want, you can say if any(s in line for s in ('string1', 'string2', 'string3')):.