I found they do because their weaknesses and strengths contradict each other causing many of the main types to be hit by super effective moves and the weaknesses to be covered by the other two starters. You are right that other Pokemon should be added to the party to help against the missing types. Salemence would be an asset to any good party. I have him on my Ruby.
Good Types Are
Psychic with Dark/Ghost
Fighting with Psychic
Dragon with Ice
Grass with Fire
Water with Electric
I found that types that cover each other work better then types that are super effective against only one thing. Incorporating them all into one party or others like that could make a good party. Tell me if you have any other ideas