For a continuous function you could do something like this:

    SetAttributes[argPlot, HoldAll];
    Options[argPlot] = Options[Plot];

    argPlot[exp_, {x_, x0_, x1_}, opt : OptionsPattern[argPlot]] :=
     Module[{pts, pl},
      pl = Plot[Arg[exp], {a, x0, x1}, PlotRange -> All, 
        PlotPoints -> OptionValue[PlotPoints]];
      pts = SortBy[Cases[pl, Line[pts_] :> pts, Infinity], #[[1, 1]] &];
      pts = Reap[Fold[Module[{ptsn},
             ptsn = #2;
             ptsn[[All, 2]] -= Round[ptsn[[1, 2]] - #1, 2 Pi];
             Sow[ptsn];
             ptsn[[-1, 2]]] &, 0, pts];][[2, 1]];      
      ListLinePlot[Flatten[pts, 1], opt]]

    argPlot[3 + 2 Exp[3 I a] + Exp[(1 - I a^2)], {a, -8, 8}]

![Mathematica graphics](https://i.sstatic.net/KPMv1.png)

Compared to an ordinary plot of the `Arg[3 + 2 Exp[3 I a] + Exp[(1 - I a^2)]]`

    Plot[Arg[3 + 2 Exp[3 I a] + Exp[(1 - I a^2)]], {a, -8, 8}, PlotRange -> All]

![Mathematica graphics](https://i.sstatic.net/KZOqc.png)