Just nest your replace statements. Simple way:
alter table mytable add new_name text;
update mytable set new_name =
trim(both ' ' from replace(replace("name", "Number", ''),"Number2", ''))
Note that this won't work for cases where either column is null. Hanlde nulls with coalesce():
update mytable set new_name =
trim(both ' ' from replace(replace("name", coalesce("Number",''), ''),coalesce("Number2",''), ''))
This will still fail if Number is a substring of Number2, because the inner replace will replace that bit of the Number2 part and the outer replace won't do anything. You can do a more complicated way that should work in all cases:
-- replace the longer string first
update mytable set new_name =
CASE WHEN coalesece(length("Number"),0) > coalesce(length("Number2"),0) THEN
trim(both ' ' from replace(replace("name", coalesce("Number",''), ''),coalesce("Number2",''), ''))
ELSE
trim(both ' ' from replace(replace("name", coalesce("Number2",''), ''),coalesce("Number",''), ''))
END
For the case where the numbers are the same length (and identical) this will work, because the inner replace will do what you want.