Is the union of 2 non context free languages always non context free?
As you suspected, the union of two non context-free languages may be context-free.

For example, $\{a^nb^nc^n\mid n\ge0\}\cup\{a^nb^nc^m \mid  m,n\ge 0,m\ne n\,\} = \{a^nb^nc^m\mid m,n\ge0\}$.

For a simpler example, $\{a^{n^2}\mid n\ge 0\}\cup\{a^{m}\mid m \text { is not a square}\} = \{a^{n}\mid n\ge 0\}$.

In fact, by a counting argument on countably infinity, for almost all languages $L$, both $L$ and its complement $\overline L=\Sigma^*\setminus L$ are non context-free (and even non context-sensitive), where $\Sigma$ is the (nonempty) alphabet. Their union, $\Sigma^*$ is context-free (and, actually, regular).



Your example is not correct since $L_3\setminus L_1 = \{a^nb^mc^k\mid n,m,k\ge0, n\ne m\}\cup \{a^nb^mc^k\mid n,m,k\ge0, m\ne k\}$ is a union of two context-free languages, hence also context-free.