Define $h : \mathbb{R} \rightarrow \mathbb{R}$ as follows: $$h(x) = x^3+6.$$
The important thing is that we've chosen $h$ in such a way that the range of $g \circ f$ just simply equals $h([0,3]).$ So lets go ahead and find $h([0,3])$.
To get started, we need to know the following:
Theorem. Suppose $f : \mathbb{R} \rightarrow \mathbb{R}$ is a continuous function. Then $$f([a,b]) = \left[\mathop{\mathrm{min}}_{x \in [a,b]} f(x), \mathop{\mathrm{max}}_{x \in [a,b]} f(x)\right]$$
Therefore, since $h$ is continuous, we have: $$h([0,3]) = \left[\mathop{\mathrm{min}}_{x \in [0,3]} h(x), \mathop{\mathrm{max}}_{x \in [0,3]} h(x)\right]$$
Now lets use:
Theorem. Suppose $f : \mathbb{R} \rightarrow \mathbb{R}$ is a function that preserves order on the interval $[a,b]$. Then it has a minimum and a maximum on this interval, and $$\mathop{\mathrm{min}}_{x \in [a,b]} f(x) = f(a), \qquad \mathop{\mathrm{max}}_{x \in [a,b]} f(x) = f(b)$$
Therefore, since $h$ preserves order, we have: $$h([0,3]) = [h(0), h(3)]= [6,33]$$
So the range of $g \circ f$ is $[6,33]$.