The meanings are close but these words are not necessarily interchangeable.
Désaccord is the softer of the set. It just means there is some disagreement, usually between two parties but it doesn't imply more. That might be just it. Its opposite is accord, agreement. I can be in désaccord about some insignificant thing with a friend, and I can have an accord with my worst enemy.
Discorde is stronger, not only the parties disagree but this is creating a conflictual situation. Its opposite is concorde which is associated with harmony and peace.
Zizanie used to mean not the discord itself, but what is causing it (a bad seed among the good ones). It is nowadays mostly used in the set expression semer la zizanie (to sow the seeds of discord). While it was a literary word rarely used in the conversation, its popularity was strongly boosted by Astérix's La Zizanie, published in 1970 (in English "Asterix and the Roman Agent"), which turned that word from niche to mainstream.
Here are sample sentences showing how these words might differ in context:
You can say: Nous sommes en désaccord à propos de ce contrat but Nous sommes en discorde... would be very odd and Nous sommes en zizanie essentially unheard.
On the other hand, we can say both Ce qu'il veut, c'est semer la zizanie and [...] c'est semer la discorde but semer le désaccord, while not impossible would be dubious.