I believe need Series.str.rsplit with n=2 for spliting by only 2 last whitespaces:
df[['Name','Country','Digit']] = df['Note'].str.rsplit(n=2, expand=True)
equals too:
df[['Name','Country','Digit']] = df['Note'].str.rsplit(' ', n=2, expand=True)    
Proof:
import pandas as pd
df = pd.DataFrame({
    'ID': [1,2,3,4],
    'Note': [
        'Sam John Brazil 2', 
        'Simion Canada 4',
        'Sam John Brazil 1',
        'Henry G. Hilson Spain 3']
})
df[['Name','Country','Digit']] = df['Note'].str.rsplit(n=2, expand=True)
print(df)
Returns:
   ID                     Note             Name Country  Digit
0   1        Sam John Brazil 2         Sam John  Brazil      2
1   2          Simion Canada 4           Simion  Canada      4
2   3        Sam John Brazil 1         Sam John  Brazil      1
3   4  Henry G. Hilson Spain 3  Henry G. Hilson   Spain      3
Add this: (if Digit column is to be numeric)
df['Digit'] = pd.to_numeric(df['Digit'], errors='coerce')
Details:
#print(df['Note'].str.rsplit(n=2, expand=True))
                 0       1  2
0         Sam John  Brazil  2
1           Simion  Canada  4
2         Sam John  Brazil  1
3  Henry G. Hilson   Spain  3