If the same threshold applies to all plots, you can add the options `Mesh` and `MeshShading` to `p1`, `p2` and `p3` and use the option `GridLines` in `Show`:

    DynamicModule[{a1 = 1, a2 = 2, a = 3, b1 = 1, b2 = 2, b = 3, 
      lag1 = 26, lag = 30, time1 = 40, time2 = 36, time3 = 39}, 
     p1 = Plot[a Sqrt[x] - b Cos[x], {x, 0, time1}, 
       PlotStyle -> Blue, Mesh -> {{15}}, 
       MeshShading -> {Opacity[1], Opacity[0.3]}]; 
     p2 = Plot[a1 Sqrt[x] - b1 Cos[x], {x, time1 - lag, time2}, 
       PlotStyle -> Red, Mesh -> {{15}}, 
       MeshShading -> {Opacity[1], Opacity[0.3]}]; 
     p3 = Plot[a2 Sqrt[x] - b2 Cos[x], {x, time2 - lag1, time3}, 
       PlotStyle -> Green, Mesh -> {{15}}, 
       MeshShading -> {Opacity[1], Opacity[0.3]}]; 
     Show[p1, p2, p3, GridLines -> {{15}, None}, 
      GridLinesStyle -> Directive[Gray, Dashed], PlotRange -> All]]

[![enter image description here][1]][1]

You can also use the option `ColorFunction`:

    twoToneCF[t_, color_] := If[# <= t, color, Opacity[.3, color]] &;

    DynamicModule[{a1 = 1, a2 = 2, a = 3, b1 = 1, b2 = 2, b = 3, 
      lag1 = 26, lag = 30, time1 = 40, time2 = 36, time3 = 39, threshold = 15}, 
     p1 = Plot[a Sqrt[x] - b Cos[x], {x, 0, time1}, Mesh -> {{15}}, 
       ColorFunctionScaling -> False, 
       ColorFunction -> twoToneCF[threshold, Blue]];
     p2 = Plot[a1 Sqrt[x] - b1 Cos[x], {x, time1 - lag, time2}, 
       ColorFunctionScaling -> False, 
       ColorFunction -> twoToneCF[threshold, Red]];
     p3 = Plot[a2 Sqrt[x] - b2 Cos[x], {x, time2 - lag1, time3}, 
       ColorFunctionScaling -> False, 
       ColorFunction -> twoToneCF[threshold, Green]];
     Show[p1, p2, p3, GridLines -> {{threshold}, None}, 
      GridLinesStyle -> Directive[Gray, Dashed], PlotRange -> All]]

[![enter image description here][2]][2]


An alternative trick is to add a semi-transparent rectangle as `Epilog`:

    With[{a1 = 1, a2 = 2, a = 3, b1 = 1, b2 = 2, b = 3, lag1 = 26, 
      lag = 30, time1 = 40, time2 = 36, time3 = 39}, 
     p1 = Plot[a Sqrt[x] - b Cos[x], {x, 0, time1}, PlotStyle -> Blue];
     p2 = Plot[a1 Sqrt[x] - b1 Cos[x], {x, time1 - lag, time2}, PlotStyle -> Red];
     p3 = Plot[a2 Sqrt[x] - b2 Cos[x], {x, time2 - lag1, time3}, PlotStyle -> Green];
     Show[p1, p2, p3, 
      Epilog -> {Opacity[.8, White], Rectangle[{15, 0}, {40, 40}]}, 
      GridLines -> {{15}, None}, 
      GridLinesStyle -> Directive[Gray, Dashed], PlotRange -> All]]

[![enter image description here][3]][3]

***Note:*** You might want top play with `ConditionalExpression` and `Piecewise` to get all three plots using a single `Plot`.


  [1]: https://i.sstatic.net/Zo9Oe.png
  [2]: https://i.sstatic.net/4SDDH.png
  [3]: https://i.sstatic.net/RvK5A.png