I have a bezier curve, which I am wanting to manipulate in a certain way. So that it is clear what part of the curve I am wanting to adjust, here is an illustration that labels the parts of the curve that are relevant to my problem.

The illustration is intended primarily as a reference for the labels I will be using in my problem and is not necessarily drawn either to-scale or to be taken as geometrically representative of any specific curve that I am trying to solve something for.
For reference, all of the points on the curve can be found via $p0 (1-t)^3 + 3 p1 (1-t)^2 t + 3 p2 (1-t) t^2 + p3 t^3$, for all real $t$ between 0 and 1.
For my purposes, we can assume that point $p0$ is on the origin, and point $p3$ is at position $(1,0)$, and that I have already measured the length of the bezier curve, and found it to be of length $L$ (actually, an approximation, but close enough for my purposes).
What I am wanting to do is to move the control point at position $p3$ horizontally, positioning it at point $(x,0)$, which will lie somewhere between $(-L,0)$ and $(L,0)$, and adjust the positions of $p1$ and $p2$ correspondingly such that the length of the bezier curve remains at $L$. Only the lengths of the vectors $\vec{A}$ and $\vec{B}$ should change to achieve this, angles $\theta$ and $\phi$, which are the angles between the x axis and 1st and 2nd control points, respectively, should be held constant as long as the lengths of $\vec{A}$ and $\vec{B}$ do not end up needing to be 0. The solution I am after is one where the lengths of both $\vec{A}$ and $\vec{B}$ change by the same factor... so if my new $\vec{A}$ is half as long as the original, then $\vec{B}$ is half as long, etc.
Are there enough constraints on this problem to have a unique solution? If so, how would I find it? An approximate solution would also be adequate as long as I can still manipulate how precise I want the answer to be. Obviously, because I haven't given any real coordinates here I'm not expecting a full numeric solution, but I would like to know what process I can use for finding an answer to this.