The words have overlapping meanings.
To me "discussion" just means talk about one central topic. It can be completely friendly. "The ten of us had a discussion about where to go for dinner."
It could be a "spirited discussion," meaning people expressed strong points of view. For example, "a spirited discussion about which is better, Windows or Macintosh."
It could be a "heated discussion," meaning, yes, it got angry.
If I know that the discussion is about a controversial topic, such as climate change, I might wonder whether it stayed friendly.
As a sort of JOKE, one could refer to a loud fight as a "spirited discussion."
I don't agree that an argument is ALWAYS angry. The essence of the word "argument" is "going in circles" so it means a long discussion on a single theme that goes around and around and comes at it from different angles. But usually the word implies some degree of heat.