Unlike slice, splice is a mutating method that makes changes to the original array (in your case, the new array that is returned from slice) and then if items are deleted, returns those deleted items. The array that is worked on (along with the changes made to it) is not stored to arr3. Is this your goal?
If you would like to return the modified array, consider using toSpliced() instead: