I think that the constraint of “all questions must be always answerable by anyone” might make it impossible.
I am going to prove this by making the random guy malevolent. This is possible because some series of random flips can exactly match any particular behavior.
Imagine a random guy who will try his best to “clone” either the honest or lying guy. The clone will pick either the liar or honest guy and pretend that he is that person and that the person he is cloning is the actual clone.
How do you tell who is the clone?
First, it is possible to tell who he is cloning. EX: If two people answer yes to “is 2+2=4”, then the clone is trying to clone the honest guy.
If he tries to clone the honest guy, then it is impossible to ask the honest guy any question that could to tell who is the clone. You must extract the information from the lying guy, who knows the answer.
If he tries to clone the dishonest guy, then it is impossible to ask the dishonest guy any question that could to tell who is the clone. You must extract the information by asking the honest guy, who knows the answer.
The problem is that I think the worst case scenario is that it will take all three questions to even identify who the clone is cloning, which is a prerequisite of figuring out who is the clone.
If you ask a question to the first guy, it can tell you if he is truthful or not, but not whether or not he is the clone. Any other information gained isn’t quite useful yet.
Then you ask the second guy something. In the worst case, this guy will be of opposite type: if the first guy appeared to be honest, this guy will appear to be dishonest.
Now, since there is no way to tell who the clone is cloning yet, you must ask the last guy. This uses up the third and final question, and since you do not yet know which of the two are the clone, you failed to solve the riddle.
At first thought, there might be a possible way around this: obtaining more information from each question than just whether the person being asked was a truth-teller of liar. But any question of the form “is 2+2=4 and the second person a liar” fails to definitively tell both whether the person is truthful and whether the second person is a liar. So, I do not think that it is possible.