Adding
\addtobeamertemplate{frametitle}{\let\insertframetitle\insertsubsectionhead}{}
will replace all frame titles, as far as they exist, but will not magically make a frame title appear if you don't give the argument to the frame environment or give a \frametitle{} command.
ETA: Additionally adding
\makeatletter
\CheckCommand*\beamer@checkframetitle{\@ifnextchar\bgroup\beamer@inlineframetitle{}}
\renewcommand*\beamer@checkframetitle{\global\let\beamer@frametitle\relax\@ifnextchar\bgroup\beamer@inlineframetitle{}}
\makeatother
makes every frame have a title, even if it is \relax by default. (This is somewhat hackish.)