Aren't they descended from shem?
No, Shem was the one who stayed true to Noah and Gods religion. Abraham descended from him. Shemites = semites = Israel. All white peoples.
There were many semites that separated from Moses both before/after the exodus from Egypt. Those peoples became the Greek/Persian rulers. Some of these kingdoms were also Japeth, who was originally white.
Ham’s main descendant was Canaan, who was cursed for laughing at Noah’s nakedness. Most believe that Canaan was cursed by having black skin. His descendants were all the black races.
The name Arab means mixed. In the Old Testament, whenever the Israelites intermarried with the godless, corrupt cultures, you had mixed races. If Japeths tribes intermarried with Canaan, that would be mixed too.