Slightly simplified code:
\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
shorten >=1pt, auto, thick,
node distance=3cm,
main node/.style={circle,draw,fill=blue!20,font=\sffamily\Large\bfseries}
]
\node[main node] (1) {1};
\node[main node] (2) [right of=1] {2};
\path[every node/.style={font=\sffamily\small}]
(1) edge [bend right] node {a} (2)
edge node {b} (2)
edge [bend left] node {c} (2);
\end{tikzpicture}
\end{document}
Some comment: if you don't like arrowed paths, then don't define them. The first option -> at the top of the picture is selecting an arrow for all paths where applicable. Hence removing that option removes the default arrowing behavior.
For nodes you can select auto. This means that you not need to declare their position anymore and they will be placed relative to the path. And why do you define nodes on edges if you then do not use them? I put letters in them to show their position on the edges.
I also omit center environment since I do not know of it purposes. For \documentclass I select standalone. It gives me just a picture.

shorten <=1ptin TikZ picture option. – Zarko Jun 14 '15 at 11:30