Rescaling the y-coordinates:
rescaleShow[p1_, p2_] := Module[{g1, g2, pr1, pr2, rs1, rs2},
{g1, g2} = Cases[{p1, p2}, _Graphics, Infinity];
{pr1, pr2} = Last /@ PlotRange /@ {g1, g2};
rs1 = With[{pr = Last@PlotRange[g1]}, Rescale[#, pr] &];
rs2 = With[{pr = Last@PlotRange[g2]}, Rescale[#, pr] &];
Show[
p1 /. Line[p_] :> Line[Transpose@MapAt[rs1, Transpose@p, 2]],
p2 /. Line[p_] :> Line[Transpose@MapAt[rs2, Transpose@p, 2]],
PlotRange -> {0, 1}, Frame -> True,
FrameTicks -> {{Charting`FindTicks[{0, 1}, pr1],
Charting`FindTicks[{0, 1}, pr2]}, {Automatic, Automatic}}
]
];
OP's example:
rescaleShow[
Plot[Exp[x], {x, 0, 10},
PlotStyle -> ColorData[97][1], PlotLegends -> {HoldForm@Exp[x]},
Frame -> True, PlotRange -> All],
Plot[Sin[x], {x, 0, 10},
PlotStyle -> ColorData[97][2], PlotLegends -> {Sin[x]}]
]

This method uses Plot
so you get the Plot
bells and whistles, like discontinuity processing, except for automatic coloring of the graphs:
rescaleShow[
Plot[Tan[x], {x, 0, 10},
PlotStyle -> ColorData[97][1], PlotLegends -> {Tan[x]},
Frame -> True],
Plot[Sin[x], {x, 0, 10},
PlotStyle -> ColorData[97][2], PlotLegends -> {Sin[x]}]
]

LogPlot
? $\endgroup$Sin[x]
does. (There are ways around this, of course.) $\endgroup$