You did not follow the example carefully.
>> S = solve(x^2 - 4*x + 3 < 0,'returnconditions',true)
struct with fields:
x: [2×1 sym]
parameters: [1×2 sym]
conditions: [2×1 sym]
1 < x & x < 3
Note the use of returnconditions. Without that, it gives a solution, but not the interval that you desire. So if I drop that property, we get a solution. It is valid, as you say. But just a solution.
S = solve(x^2 - 4*x + 3 < 0)