DSolve attempts to solve this nonlinear ODE by reducing the problem to a second-order equation,
but is unable to find a closed-form solution.
It may be noted that the following simpler problem can be solved quickly and leads to a solution similar
to that suggested by you:
In[1]:= eqn = y'''[x]*(1 + y'[x]^2) == 3*y'[x]*y''[x]^2;
In[2]:= (sol = DSolve[eqn, y, x]) // InputForm
Out[2]//InputForm=
{{y -> Function[{x}, ((-I)*Sqrt[-1 + x^2*C[1]^2 + 2*x*C[1]^2*C[2] + C[1]^2*C[2]^2])/C[1] + C[3]]},
{y -> Function[{x}, (I*Sqrt[-1 + x^2*C[1]^2 + 2*x*C[1]^2*C[2] + C[1]^2*C[2]^2])/C[1] + C[3]]}}
In[3]:= eqn /. sol // Simplify
Out[3]= {True, True}
In[4]:= implicitsol = (x^2 + y[x]^2 + c*x + d*y[x] + e == 0);
In[5]:= Simplify[implicitsol /. sol /. {c -> 2*C[2], d -> -2*C[3],
e -> (-1 + C[1]^2*C[2]^2 + C[1]^2*C[3]^2)/C[1]^2}]
Out[5]= {True, True}