Python 2, 97 95 92 90 bytes
for i in range(input()):
for w in'Yeah','But','No':
if(len(w)<3)==i%(3-len(w)%2):print w
Python 3, 92 90 bytes
def f(n):[print('Yeah\n'*(i%3<1)+'But\n'*(i%2<1)+'No\n'*(i%3==1),end='')for i in range(n)]
-2 bytes, thanks to ovs