If you consider 2 cascaded \$RC\$ filters, as here, you can apply a brute-force approach, as you've experienced, or consider the fast analytical circuits techniques or FACTs. If we start with the first approach, many options exist but I like Thévenin for this type of structure. If you consider an impedance made of \$R_1||\frac{1}{sC_1}\$ driving the second \$RC\$ stage, then the raw transfer function is immediate:
If you develop it, you may make errors or obtain a complicated expression requiring more energy to factor it in a meaningful way.
The second option uses the fast analytical techniques or FACTs that I described in my last book. The principle is simple: determine the time constants of the filter in two different conditions: when the excitation is turned off and when the response is nulled. The first approach one deals with the poles determination while the second one deals with the determination of zeroes. In this filter, there is no zero and will concentrate on the poles only. What is cool with this technique is that you don't need to go through any line of algebra and can determine the transfer function by inspection.
Let's have a look with the cascaded \$RC\$ networks shown below:
First, you look at the circuit for \$s=0\$ in which you open the capacitors. As you can see, the gain is 1 in this configuration (we considered an unloaded filter). Then, turn the excitation off and replace the source by a short circuit: a 0-V source is a short circuit while a 0-A current source is an open circuit. Now, "look" through the terminals of the capacitors to determine the resistance in this mode. You do it by inspecting the circuit, no equation. When you have the resistance, multiply by the capacitor value to form the time constants. For instance, you should find \$\tau_1=R_1C_1\$ and \$\tau_2=(R_1+R_2)C_2\$. As this is a second-order network, you can now write \$b_1=\tau_1+\tau_2=C_1R_1+(R_1+R_2)C_2\$.
For the second-order term, place capacitor \$C_1\$ in its high-frequency state (a short circuit) and "look" through \$C_2\$'s connecting terminals to determine the resistance: \$\tau_{12}=C_2R_2\$. This is it, you can write \$b_2=\tau_1\tau_{12}=R_1C_1R_2C_2\$ and you are done!
The Mathcad sheet shows the step and eventually a factorization of two separated poles using the low-\$Q\$ approximations:
To obtain the -3-dB cutoff frequency, we either start from the two cascaded poles and calculate the \$\omega\$ value at which the magnitude is \$\frac{1}{\sqrt{2}}\$ considering a gain of 1. The resulting cutoff frequency expression is not really friendly and can be improved if we consider all resistances equal to \$R\$ and all caps equal to \$C\$. This is shown in the below sheet:
Finally, a Mathcad plot confirms our calculations: