Each party could have 2 or 3 platform planks. These could be like ‘cannot have conservative abortion policy - only moderate-to-liberal’, ‘cannot have low military spending - only moderate-to-high’, etc. The oppositions parties would therefore tend to do better with some voter groups than others - it would not simply be a product of which voter types are less/more happy.
This makes having two opposition parties more realistic. If there’s one pro-labor and one pro-employer opposition party, then a specific opposition party would get the bulk of the trade unionist vote, not just the bigger opposition party.
You’d also want to think about choosing policies that make the smaller opposition party more upset/enthused for an election while avoiding those that will do so for the larger opposition party.
Another thing to include could be a ‘concern’/‘focus’ of the party (each party gets one). This could be something like ‘national security’. An opposition party with a ‘national security’ focus would get a huge surge of votes if you made a national security screwup (neglecting funding of X before Y event takes place), so you’d want to avoid neglecting that area to secure your election fortunes. If your focus was also national security, perhaps you see a greater decrease in voter support than normal as well.
Note - each of these choice would have an effect each party’s base at the beginning of the game