How can we stop the same person being the traitor each time?
There aren't any rules for it. If you're getting tired of the same person being the traitor, then make a house rule based loosely on the rules for skipping haunts, and you can go back to having fun again.

Or you can just keep playing; it's only been three games so far.  What are the odds that the same person is the traitor again?

Edit: Yes, I realize the odds are the same each time.  But even with just 3 players, it's less than 50% each time.  The traitor should be a different player after just one or two more games.

And here are a few quick-and-dirty ways to select a different player:


Select the next-most-appropriate player.

If the traitor is the haunt revealer, select the next player to the left.  Give them the Omen that caused the haunt.  (I considered only giving them the Omen if it was relevant, but that could reveal some information about the haunt.  So give it to them regardless of whether it's relevant or not.)
If the traitor is the player with the highest [trait], select the player with the next-highest [trait].  If the stat is particularly relevant to the haunt (i.e., you need to beat the Traitor at that particular trait, or that trait is highly relevant to the Heroes' success and the haunt wanted to deny that advantage to the Heroes), select a different haunt using the standard rules.

Pick somebody else randomly.  Give them the Omen that caused the haunt, if the haunt revealer is supposed to be the Traitor.
Use the standard rules to select a different haunt, until the selected Traitor is someone else.