If not, it’s entirely possible that JUCE’s hex parser requires you to have the alpha included, meaning your colour string should be "#ff3b4252" (being ARGB).
Just in case you didn’t know, if you want hard coded hex colour values in your code, you don’t need the overhead of parsing a string. Directly entering an uint32 hex literal works as well and is a lot more straightforward and efficient as you don’t need to rely on any runtime code that understands your string and then generates the exact same integer value from that string that you could have hard-coded right away:
static const Colour myColour { 0xFF3B4252 };
If you have a look at the implementation of juce_Colours.h you’ll see that this is exactly what they also do for all their colours.
Also note that the fromString() method doesn’t support triplets. If you only supply three values, the first is taken as alpha and blue is unset (zero).