Borrowing from Hendrik's answer here: Redefine underscore to produce roman subscript without breaking file names
NOT recommended!
\documentclass{article}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\smash{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12
\begin{document}
$T_a T_b$ vs $T_a T_{\dot b}.$
\end{document}

If one wanted the subscripts universally lower, a variation of the suggestion of NoWayHaze would be this:
\documentclass{article}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\strut#1}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12
\begin{document}
$T_a T_b$ vs $T_a T_{\dot b}.$
\end{document}

As an alternative, you could sacrifice another character, here a !, to specifically mean a subscript in which the height of the element is ignored. Then, you can still use _ in the normal cases.
\documentclass{article}
\begingroup
\catcode`\!=\active
\gdef!#1{\ensuremath{\sb{\smash{#1}}}}
\endgroup
\mathcode`\!=\string"8000
\catcode`\!=12
\begin{document}
$T_a T_{\dot b}.$ vs $T_a T!{\dot b}.$
\end{document}

T\strut_a T\strut_{\dot b}which aligns the subscripts but moves them to an unnaturally low location. – NoWayHaze Jan 16 '20 at 17:08