Hi,
It is a bit (quite a bit actually) more complicated than just randomly chucking in the actions into separate FSMs
.
This is a possoible soultion, but really I am not sure if it will work for you: If your character currently moves as you need him to, try to make an FSM where the first state gets the character's movement speed/velocity (or the input axis that is making him move) . Next use compare float action and if the speed/velocity/axis is higher or lower than 0, send an event to the next state, which plays the run animation and again compares the same float (and probably need to get the floast again in this state, unless you're getting the float in another FSM), but here you send to the idle state once the float is 0.
I think that is a possible solution, but if it makes no sense, then I can only suggest to check out those tutorials again, trust me after them you will come back and this will all be simple stuff...