to argue = verbal fight, unorganized. Think about people screaming at each other at the same time, like on a talk show.
to debate = an organized discussion where opposing viewpoints are given equal time. Think about two experts on a news or politics show.
to contend = this just a synonym for "to compete" or "to struggle against something", not necessarily a verbal struggle.