Yes, your proof seems correct, I'm going to add a proof that relies only on the definition and on Modulus of continuity which might help :
As far as concern $f$ continuos we know from Extreme value Theorem that $f$ is bounded between it's maximum and minimum, taken since we are on a compact.
Additionally as you said, we know from Heine Cantor that $f$ is uniformely continuos.
Let $\omega(t)$ be a modulus of continuity for $f$, which means that $|f(x)-f(x')| \leq \omega(|x-x'|)$ con $\omega$ continuos and infinitesimal in $0$.
$\forall J \subseteq I = [a,b]$,$\forall x,x' \in J,$
$|f(x)-f(x')| \leq \omega(|x-x'|)\leq\omega(|J|),$
Thanks to $\omega$ we were able to estimate $osc(f,J): = \sup\limits_{x,x' \in J} |f(x)-f(x')|$ $f$ su $J$, $osc(f,J) \leq \omega(|J|)$.
This is because $osc(f,J) = \sup\limits_{x \in J} f(x) - \inf\limits_{x \in J} f(x)= \sup\limits_{x,x' \in J}(f(x)-f(x')) \leq \omega(|x'-x|) = \omega(|J|)$
So, for every $P$ partition of $[a,b], \forall P \in \mathbb{P}([a,b])$ (The set of all partion of $[a,b]$)
Remembering that $|P|:=\max\limits_{1 \leq k \leq n}|I_{k}|$, and defining $\rho(f,P):= S(f,P)-s(f,P)$
(Where $S(f,P)-s(f,P) = \sum\limits_{k=1}^{n}|I_{k}|(\sup\limits_{x \in I_{k}}f(x)-\inf\limits_{x' \in I_{k}}f(x'))$
$$\rho(f,P) = \sum\limits_{k=1}^{n}|I_{k}| \cdot osc(f,I_{k}) \leq \sum\limits_{k=1}^{n} \cdot |I_{k}| \omega(|I_{k}|) \leq \sum\limits_{k=1}^{n} |I_{k}| \cdot \omega(|P|) = (b-a)\cdot \omega(|P|)$$
Because $\omega$ is continuos in $0$,we have $\omega(|P|) = o(1)$ when $|P| \to 0$.
Infact, $\forall |t| \leq \delta,\hspace{0.2cm} \omega(t) < \varepsilon$.
It is enought to choose a partition such that $0 < |P| < t$ and automatically we will have $\omega(|P|) \leq \omega(t) < \varepsilon$.
In other words $\inf\limits_{P \in \mathbb{P}(I)}\rho(f,P) = 0,$ which means that $f$ is Riemann integrable.
Consider a partition $a = x_0 < x_1 < \ldots < x_n = b$ and for a subinterval $I_j = [x_{j-1},x_j]$ define
$$D_{j}(g) = \sup_{x \in I_j}g(x) - \inf_{x \in I_j}g(x) = \sup_{x,y \in I_j}|g(x) - g(y)| \\ D_{j}(f \circ g ) = \sup_{x \in I_j}f(g(x)) - \inf_{x \in I_j}f(g(x)) = \sup_{x,y \in I_j}|f(g(x)) - f(g(y))|$$
Since $f$ is continuous it is uniformly continuous and bounded (by extension if necessary) on a closed interval $[c,d]$ such that $g([a,b]) \subset [c,d].$
Hence, $|f(x)| \leqslant M$ for $x \in [c,d]$ and for every $\epsilon >0$ there exists $\delta > 0$ such that if $|x_1 - x_2| < \delta$ then $|f(x_1) - f(x_2)| < \epsilon/(2(b-a))$ .
Since $g$ is integrable, if the partition norm $\|P\|$ is sufficiently small we have
$$U(P,g) - L(P,g) = \sum_{j=1}^n D_j(g) (x_j - x_{j-1}) < \frac{ \delta \epsilon}{4M}.$$
We can split the upper-lower sum difference $U(P,f \circ g) - L(P, f \circ g)$ into two sums as given by
$$\tag{1}U(P,f \circ g) - L(P, f \circ g) = \sum_{D_j(g) \geqslant \delta} D_j(f \circ g)(x_j - x_{j-1}) + \sum_{D_j(g) < \delta} D_j(f \circ g)(x_j - x_{j-1})$$
In the second sum on the RHS of (1) we have $D_j(f \circ g) < \epsilon/(2(b-a)$ since by uniform continuity $D_j(g) < \delta \implies |g(x) - g(y)| < \delta \implies |f(g(x)) - f(g(y))| < \epsilon/(2(b-a)$ for all $x,y \in I_j$.
Thus,
$$\tag{2}\sum_{D_j(g) < \delta} D_j(f \circ g)(x_j - x_{j-1}) < \frac{\epsilon}{2}$$
Considering the first sum on the RHS of (1), first note that
$$\sum_{D_j(g) \geqslant \delta} (x_j - x_{j-1}) \\ < \delta^{-1}\sum_{D_j(g) \geqslant \delta} D_j(g)(x_j - x_{j-1}) < \delta^{-1} [U(P,g) - L(P,g)] < \delta^{-1} \frac{\delta \epsilon}{4M} = \frac{\epsilon}{4M} .$$
Hence,
$$\tag{3}\sum_{D_j(g) \geqslant \delta} D_j(f \circ g)(x_j - x_{j-1}) < \sum_{D_j(g) \geqslant \delta} 2M(x_j - x_{j-1}) < \frac{\epsilon}{2}.$$
From (1), (2) and (3) we obtain
$$U(P,f \circ g) - L(P, f \circ g) < \epsilon,$$
and conclude that $f \circ g$ is integrable.
Best Answer
Since $f$ is Riemann integrable on $[a,b]$ there is an $M$ with $|f(x)|\leq M$ for all $x\in[a,b]$. The function $g(x):=f^2(x)$ then satisfies $$|g(x)-g(y)|=|f(x)+f(y)|\>|f(x)-f(y)|\leq 2M \>|f(x)-f(y)|$$ for arbitrary $x$, $y\in[a,b]$. This implies that any test you can think of to establish the integrability of $f$ will also be passed by $g$.